הוראות לנבחן בפרק זה ארבע שאלות, פרק ראשון ומהן יש לענות על שתיים. לפי ההוראות בקבוצת השאלות במסלול זה.

Σχετικά έγγραφα
מבני נתונים מדעי המחשב שאלון: מועד ב' תשע"ו מדעי המחשב פתרון בחינת הבגרות. Java שאלה 1. blog.csit.org.

ב ה צ ל ח ה! /המשך מעבר לדף/

פתרון תרגיל מרחבים וקטורים. x = s t ולכן. ur uur נסמן, ur uur לכן U הוא. ur uur. ur uur

מתמטיקה שאלון ו' נקודות. חשבון דיפרנציאלי ואינטגרלי, טריגונומטריה שימוש במחשבון גרפי או באפשרויות התכנות עלול לגרום לפסילת הבחינה.

חורף תש''ע פתרון בחינה סופית מועד א'

3-9 - a < x < a, a < x < a

שדות תזכורת: פולינום ממעלה 2 או 3 מעל שדה הוא פריק אם ורק אם יש לו שורש בשדה. שקיימים 5 מספרים שלמים שונים , ראשוני. שעבורם

מדעי המחשב. פרק ראשון :Java. blog.csit.org.il מדעי המחשב שאלון: עיצוב תכנה 1 מועד ב' תשע"ו פתרון בחינת הבגרות שאלה 1 פעולות עזר:

שאלה 1 V AB פתרון AB 30 R3 20 R

2 שאלות )בחירה מ - 4( סה"כ 25 נקודות לכל שאלה 22 נקודות

מתמטיקה )שאלון שני לנבחנים בתכנית ניסוי, 5 יחידות לימוד( 1 מספרים מרוכבים 3#2 3 3

תרגול פעולות מומצאות 3

לדוגמה: במפורט: x C. ,a,7 ו- 13. כלומר בקיצור

חידה לחימום. כתבו תכappleית מחשב, המקבלת כקלט את M ו- N, מחליטה האם ברצוappleה להיות השחקן הפותח או השחקן השappleי, ותשחק כך שהיא תappleצח תמיד.

סדרות - תרגילים הכנה לבגרות 5 יח"ל

צעד ראשון להצטיינות מבוא: קבוצות מיוחדות של מספרים ממשיים

תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשע"ד, מיום 0/8/0610 שאלונים: 315, מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן

מערכות חשמל ג' שתי יחידות לימוד )השלמה לחמש יחידות לימוד( )כיתה י"א(

2 יח"ל ) השלמה ל - 5 יח"ל) (50 נקודות) מעבר חוקי, ו-'שקר' אחרת.

מחשוב ובקרה ט' למתמחים במחשוב ובקרה במגמת הנדסת חשמל אלקטרוניקה (כיתה י"ג) הוראות לנבחן

בחינה בסיבוכיות עמר ברקמן, ישי חביב מדבקית ברקוד

(ספר לימוד שאלון )

גבול ורציפות של פונקציה סקלרית שאלות נוספות

פתרון תרגיל 5 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד

ניתן לקבל אוטומט עבור השפה המבוקשת ע "י שימוששאלה 6 בטכניקתשפה המכפלה שנייה כדי לבנות אוטומט לשפת החיתוך של שתי השפות:

s ק"מ קמ"ש מ - A A מ - מ - 5 p vp v=

(להנדסאי מכונות) הוראות לנבחן פרק שני: בקרת תהליכים ומכשור לבקרה ולאלקטרוניקה תעשייתית 80 נקודות

לוגיקה ותורת הקבוצות פתרון תרגיל בית 8 חורף תשע"ו ( ) ... חלק ראשון: שאלות שאינן להגשה נפריד למקרים:

= 2. + sin(240 ) = = 3 ( tan(α) = 5 2 = sin(α) = sin(α) = 5. os(α) = + c ot(α) = π)) sin( 60 ) sin( 60 ) sin(

מערכות אלקטרוניות א' יחידת לימוד אחת )כיתה י"ב(

חשמל לתלמידי 5 יחידות לימוד הוראות לנבחן = נקודות

{ : Halts on every input}

תרגול 1 חזרה טורי פורייה והתמרות אינטגרליות חורף תשע"ב זהויות טריגונומטריות

brookal/logic.html לוגיקה מתמטית תרגיל אלון ברוק

אוטומט סופי דטרמיניסטי מוגדר ע"י החמישייה:

משוואות רקורסיביות רקורסיה זו משוואה או אי שוויון אשר מתארת פונקציה בעזרת ערכי הפונקציה על ארגומנטים קטנים. למשל: יונתן יניב, דוד וייץ

gcd 24,15 = 3 3 =

דף פתרונות 7 נושא: תחשיב הפסוקים: צורה דיסיונקטיבית נורמלית, מערכת קשרים שלמה, עקביות

יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012)

תורת הגרפים - סימונים

תרגול 8: מטלאב לולאות

מבני נתונים מבחן מועד ב' סמסטר חורף תשס"ו

דוגמה: יהי T עץ בינארי כפי שמתואר בציור הבא:

סיכום- בעיות מינימוםמקסימום - שאלון 806

חלק 1 כלומר, פונקציה. האוטומט. ) אותיות, אלפבית, א"ב (.

מדעי המחשב ב' פתרון בחינת הבגרות. One n 4.0. One n T 4 3 T 8 4 T 16 5 T 32 6 F

מודלים חישוביים מבחן מועד א', סמסטר א' תשע''ה (2015)

מערכות אלקטרוניות א' יחידת לימוד אחת )כיתה י"ב(

פתרון תרגיל 8. מרחבים וקטורים פרישה, תלות \ אי-תלות לינארית, בסיס ומימד ... ( ) ( ) ( ) = L. uuruuruur. { v,v,v ( ) ( ) ( ) ( )

כלליים זמן: S מחסנית, top(s) ראש המחסנית. (Depth First Search) For each unmarked DFS(v) / BFS(v) רקורסיבי. אלגוריתם :BFS

לוגיקה ותורת הקבוצות פתרון תרגיל בית 4 אביב תשע"ו (2016)

אוסף שאלות מס. 3 פתרונות

ל הזכויות שמורות לדפנה וסטרייך

מכונת טיורינג אוטומט מחסנית לא דטרמיניסטי שפות חופשיות הקשר (שפת ראי לא מסומנת)

מכונת טיורינג אוטומט מחסנית לא דטרמיניסטי שפות חופשיות הקשר (שפת ראי לא מסומנת)

מבחן מועד ב' בהצלחה! אנא קיראו היטב את ההוראות שלהלן: ודאו כי כל עמודי הבחינה נמצאים בידכם.

רשימת בעיות בסיבוכיות

logn) = nlog. log(2n

פיזיקה 3 יחידות לימוד הוראות לנבחן

TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE סמסטר אביב תשס"ו מס' סטודנט:

מצולעים מצולעהוא צורה דו ממדית,עשויה קו"שבור"סגור. לדוגמה: משולש, מרובע, מחומש, משושה וכו'. לדוגמה:בסרטוט שלפappleיכם EC אלכסוןבמצולע.

( )( ) ( ) f : B C היא פונקציה חח"ע ועל מכיוון שהיא מוגדרת ע"י. מכיוון ש f היא פונקציהאז )) 2 ( ( = ) ( ( )) היא פונקציה חח"ע אז ועל פי הגדרת

"קשר-חם" : לקידום שיפור וריענון החינוך המתמטי

סיכום חקירת משוואות מהמעלה הראשונה ומהמעלה השנייה פרק זה הינו חלק מסיכום כולל לשאלון 005 שנכתב על-ידי מאיר בכור

TECHNION Israel Institute of Technology, Faculty of Mechanical Engineering מבוא לבקרה (034040) גליון תרגילי בית מס 5 ציור 1: דיאגרמת הבלוקים

[ ] Observability, Controllability תרגול 6. ( t) t t קונטרולבילית H למימדים!!) והאובז' דוגמא: x. נשתמש בעובדה ש ) SS rank( S) = rank( עבור מטריצה m

מכונת טיורינג אוטומט מחסנית לא דטרמיניסטי שפות חופשיות הקשר (שפת ראי לא מסומנת)

מודלים חישוביים תרגולמס 5

18 במאי 2008 פיזיקה / י"ב נקודות; 3 33 = 100 נקודות. m 2 בהצלחה! שאלה 1

תכנון אלגוריתמים 2016 עבודה 1 שאלה 1 פתרון נתונות שתי בעיות. יש למצוא: אורך מסלול קצר ביותר המתחיל באחד מן הקודקודים s 1,..., s k ומסתיים ב t.

תרגילים באמצעות Q. תרגיל 2 CD,BF,AE הם גבהים במשולש .ABC הקטעים. ABC D נמצאת על המעגל בין A ל- C כך ש-. AD BF ABC FME

אלגברה ליניארית (1) - תרגיל 6

Logic and Set Theory for Comp. Sci.

הגדרה: קבוצת פעילויות חוקית היא קבוצה בה כל שתי פעילויות

התפלגות χ: Analyze. Non parametric test

תשובות מלאות לבחינת הבגרות במתמטיקה מועד חורף תשע"א, מיום 31/1/2011 שאלון: מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן.

. {e M: x e} מתקיים = 1 x X Y

מבני נתונים מבחן מועד א' סמסטר חורף תשס"ו

קבוצה היא שם כללי לתיאור אוסף כלשהו של איברים.

מתמטיקה בדידה תרגול מס' 13

תרגיל 7 פונקציות טריגונומטריות הערות

אלגוריתמים בתורת הגרפים חלק ראשון

פיזיקה 3 יחידות לימוד הוראות לנבחן

1 שאלו : Together double x 5.0 int from 2 int to 6 One first Two second One n 5.0 Queue<One>q One n 4.0 One n 8.0 One n 16.

I. גבולות. x 0. מתקיים L < ε. lim אם ורק אם. ( x) = 1. lim = 1. lim. x x ( ) הפונקציה נגזרות Δ 0. x Δx

תרגול מס' 6 פתרון מערכת משוואות ליניארית

מתמטיקה בדידה תרגול מס' 12

הרצאה. α α פלוני, וכדומה. הזוויות α ל- β שווה ל-

פיזיקה מבחן מתכונת בחשמל ומגנטיות לתלמידי 5 יחידות לימוד הוראות לנבחן

תרגיל 13 משפטי רול ולגראנז הערות

טריגונומטריה הגדרות הפונקציות הטריגונומטריות הבסיסיות

מבני נתונים מבחן מועד א' סמסטר אביב תשס"ו

תוכן הפרק: ,best case, average case דוגמאות 1. זמן - נמדד באמצעות מס' פעולות סיבוכיות, דוגמאות, שיפור בפקטור קבוע האלגוריתם. וגודלם. איטרטיביים. לקלט.

1 שאלון: תש"ע

שם התלמיד/ה הכיתה שם בית הספר. Page 1 of 18

(2) מיונים השאלות. .0 left right n 1. void Sort(int A[], int left, int right) { int p;

אלגברה לינארית (1) - פתרון תרגיל 11

אלגברה מודרנית פתרון שיעורי בית 6

מערכות חשמל ג' שתי יחידות לימוד )השלמה לחמש יחידות לימוד( )כיתה י"א( הוראות לנבחן

לוגיקה ותורת הקבוצות אביבתשס ז מבחןסופי מועדב בהצלחה!

Transcript:

א. בגרות לבתי ספר על יסודיים סוג הבחינה: מדינת ישראל בגרות לנבחנים חיצוניים ב. משרד החינוך קיץ תשס"ח, 2008 מועד הבחינה: 603 899205, מספר השאלון: מ ד ע י ה מ ח ש ב ב' 2 יחידות לימוד )השלמה ל 5 יח"ל( הוראות לנבחן א. משך הבחינה: שלוש שעות. ב. מבנה השאלון ומפתח ההערכה: בשאלון זה שני פרקים. )25x2( 50 נקודות בפרק זה ארבע שאלות, פרק ראשון ומהן יש לענות על שתיים. )25x2( 50 נקודות בפרק זה שאלות בארבעה מסלולים שונים פרק שני ענה על שאלות רק במסלול שלמדת, לפי ההוראות בקבוצת השאלות במסלול זה. סה"כ 00 נקודות ג. חומר עזר מותר בשימוש: כל חומר עזר, חוץ ממחשב הניתן לתכנות. ד. הוראות מיוחדות: )( את כל התכניות שאתה נדרש לכתוב בשפת מחשב בפרק הראשון כתוב בשפה אחת בלבד פסקל, #C, C או. Java )2( רש ום על הכריכה החיצונית של המחברת באיזו שפה אתה כותב פסקל, C#, C או. Java )3( רש ום על הכריכה החיצונית של המחברת את שם המסלול שלמדת, אחד מארבעת המסלולים: מערכות מחשב ואסמבלר, תורת המחשב, מודלים חישוביים, תכנות מונחה עצמים. הערה: בתכניות שאתה כותב לא י ורד ו לך נקודות, אם תכתוב אות גדולה במקום אות קטנה או להפך. כתוב במחברת הבחינה בלבד, בעמודים נפרדים, כל מה שברצונך לכתוב כטיוטה )ראשי פרקים, חישובים וכדומה(. רש ום "טיוטה" בראש כל עמוד טיוטה. רישום טיוטות כלשהן על דפים שמחוץ למחברת הבחינה עלול לגרום לפסילת הבחינה! ההנחיות בשאלון זה מנוסחות בלשון זכר ומכוונות לנבחנות ולנבחנים כאחד. בהצלחה! /המשך מעבר לדף/

- 2 - מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205, השאלות בשאלון זה שני פרקים: פרק ראשון ופרק שני. עליך לענות על שאלות משני הפרקים, לפי ההוראות בכל פרק. פרק ראשון )50 נקודות( ענה על שתיים מהשאלות 4- )לכל שאלה 25 נקודות(.. נתונות כותרות האלגוריתמים גדול-בין-שניים ו ערך-מוחלט-של-ההפרש, ונתונים האלגוריתמים סוד, סוד 2, סוד 3, סוד 4. גדול-בין-שניים x( )y, הפעולה מקבלת שני מספרים שלמים וגדולים מ 0, x ו. y הפעולה מחזירה את המספר הגדול ביניהם. אם המספרים שווים, הפעולה מחזירה אחד מהם. ערך-מוחלט-של-ההפרש x( )y, הפעולה מקבלת שני מספרים שלמים וגדולים מ 0, x ו. y הפעולה מחזירה את הערך המוחלט של ההפרש ביניהם. סוד p) (a, n, p, הפעולה מקבלת מערך, a המכיל מספרים שלמים וגדולים מ, 0 ושלושה מספרים שלמים p, n ו n. p הוא גודל המערך, ו p p n. הפעולה מחזירה... )( אם p = p אזי החזר 0 )2( ערך-מוחלט-של-ההפרש a]p[) x! (a]p[, )3( סוד p) y! ( a, n, p+, )4( החזר גדול-בין-שניים y) (x, סוד 2 p2) (a, n, p, הפעולה מקבלת מערך, a המכיל מספרים שלמים וגדולים מ, 0 ושלושה מספרים שלמים p, n ו n. p2 הוא גודל המערך, ו p p2 n. הפעולה מחזירה... /המשך בעמוד 3/ )( אם p = p2 אזי החזר 0 )2( ערך-מוחלט-של-ההפרש a]p2[) x! (a]p[, )3( סוד 2 ) y! ( a, n, p, p2 - )4( החזר גדול-בין-שניים y) (x,

- 3 - מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205, סוד 3 n) (a, p, הפעולה מקבלת מערך, a המכיל מספרים שלמים וגדולים מ 0, ושני מספרים שלמים n ו n. p הוא גודל המערך, ו p n. הפעולה מחזירה... )( החזר גדול-בין-שניים (סוד p) (a, n,,, סוד 2 n) ((a, n, p, סוד 4 n) (a, הפעולה מקבלת מערך, a המכיל מספרים שלמים וגדולים מ 0, ומספר שלם. n n הוא גודל המערך. הפעולה מחזירה... )( סוד 3 n) k!( a,, )2( עבור i מ 2 עד n בצע: )2.( סוד 3 n) t! ( a, i, אזי k )2.2( אם t > k! t )2.2.( )3( החזר k נתון מערך חד ממדי a בגודל 5 )משמאל לימין(: 2 3 4 5 a 4 3 7 6 0 מה יחזיר הזימון סוד 3 (5, 4, a)? רשום את המעקב. א. מה מבצע האלגוריתם סוד 3 (n a), p, בעבור מערך a בגודל n ומספר שלם, p ב.? p n מה יחזיר הזימון סוד 4 (5, a)? רשום את המעקב אחר ביצוע סוד 4. אין צורך ג. להראות מעקב אחר ביצוע סוד 3. מה מבצע האלגוריתם סוד 4 (n a), בעבור מערך a בגודל? n ד. /המשך בעמוד 4/

- - מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205, 2. טיפוס הנתונים מיון-בתחומים מאפשר לשמור כמות גדולה של מספרים שלמים, שונים זה מזה, הממוינים לפי תחומים. לכל תחום מוגדר ערך מינימלי וערך מקסימלי. כל תחום כולל מספרים הגדולים מהערך המינימלי או שווים לו, וקטנים מהערך המקסימלי. לתחום האחרון מוגדר רק ערך מינימלי, והוא כולל מספרים הגדולים מערך זה או שווים לו. טיפוס הנתונים מיון-בתחומים מורכב מ: mins מערך חד ממדי בגודל 00 המכיל מספרים שלמים שונים זה מזה, הממוינים בסדר עולה. כל מספר מייצג ערך מינימלי של תחום. values מערך חד ממדי בגודל 00 המכיל רשימות. כל רשימה מכילה מספרים שלמים שונים זה מזה, הממוינים בסדר עולה. ברשימה שנמצאת במקום ה k במערך values נמצאים מספרים הגדולים מן הערך שנמצא במקום ה k במערך mins או שווים לו, וקטנים מן הערך שנמצא במקום ה +k במערך.mins ברשימה האחרונה נמצאים מספרים הגדולים מן הערך המינימלי של התחום האחרון או שווים לו.. mins מספר שלם המייצג את מספר התחומים הנוכחי שיש במערך current לדוגמה: בעבור המספרים האלה:,700,556,20,220,9,6,99,555 ושלושת התחומים האלה: i מספרים הגדולים מ 0 או שווים לו וקטנים מ 0 ii מספרים הגדולים מ 0 או שווים לו וקטנים מ 556 iii מספרים השווים ל 556 או גדולים ממנו sort מטיפוס מיון-בתחומים יהיה: mins values current 0, 6, 9, 99 3 sort 0 556 20, 220, 555 556, 700 )שים לב: סעיפי השאלה בעמוד הבא.( /המשך בעמוד 5/

- 5 - מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205, לפותרים בפסקל או ב C א. רשום בפסקל או ב C את הייצוג של טיפוס הנתונים מיון-בתחומים.sortByRange ב. ממ ש בפסקל או ב C תת תכנית, insert שתקבל משתנה sbr מטיפוס sortbyrange ומספר שלם. num התת תכנית תכניס את num לרשימה המתאימה במערך values של, sbr על פי סדר המיון של המספרים ברשימה. הנח כי num אינו נמצא ב values של, sbr ו num גדול מהערך הקטן ביותר שנמצא במערך mins של. sbr ג. ממש בפסקל או ב C תת תכנית, addrange שתקבל משתנה sbr מטיפוס. sbr של values הגדול מכל המספרים ב r ומספר שלם sortbyrange התת תכנית תוסיף תחום חדש ל, sbr ש r הוא הערך המינימלי שלו. הנח כי ב sbr יש מקום לתחום נוסף. ד. i מהי סיבוכיות זמן הריצה של התת תכנית שמימשת בסעיף ב? הסבר. ii מהי סיבוכיות זמן הריצה של התת תכנית שמימשת בסעיף ג? הסבר. הערה: אפשר להשתמש בפעולות הממשק רשימה בלי לממש אותן. אם אתה משתמש בפעולות נוספות, עליך לממש אותן. לפותרים ב Java או ב #C א. רשום ב Java או ב #C את כותרת המחלקה מיון-בתחומים SortByRange ואת התכונות שלה. ב. ממ ש ב Java או ב #C פעולה פנימית בשם insert במחלקה, SortByRange שתקבל מספר שלם. num הפעולה תכניס את num לרשימה המתאימה במערך, values על פי סדר המיון של המספרים ברשימה. הנח כי num אינו נמצא ב, values ו num גדול מהערך הקטן ביותר שנמצא במערך. mins ג. ממש ב Java או ב #C פעולה פנימית בשם addrange במחלקה, SortByRange שתקבל מספר שלם r הגדול מכל המספרים ב. values הפעולה תוסיף תחום חדש ש r הוא הערך המינימלי שלו. הנח כי יש מקום לתחום נוסף. ד. i מהי סיבוכיות זמן הריצה של הפעולה שמימשת בסעיף ב? הסבר. ii מהי סיבוכיות זמן הריצה של הפעולה שמימשת בסעיף ג? הסבר. הערה: אפשר להשתמש בפעולות של המחלקות > T List< T >, Node< בלי לממש אותן. אם אתה משתמש בפעולות נוספות, עליך לממש אותן. /המשך בעמוד 6/

מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205, - 6 - בעלים של חנות למשחקי מחשב רוצים לבנות מאגר מידע על 00 המשחקים שמוצעים 3. למכירה בחנות. מאגר המידע יאפשר לתת ללקוחות מידע על המ שחקים האלה, והוא מתעדכן בכל פעם שלקוח משתמש במשחק. בעבור כל מ שחק נשמר המידע הזה: קוד המשחק. שם המשחק. הגיל המינימלי של שחקן שהמשחק מתאים לו. מספר העותקים של המשחק שנמכרו בחנות. מספר הפעמים הכולל שלקוחות שיחקו במשחק. מספר הפעמים הכולל שבהן השימוש במשחק נפסק בגלל תקלה. לפותרים בפסקל או ב C א. כתוב בפסקל או ב C ייצוג למשחק game ולמאגר מידע על משחקים,gamesData שיאפשרו לשמור את כל המידע הנדרש. ב. לפניך שתי משימות,. ii-i כתוב בפסקל או ב C כותרות לתת תכניות שיאפשרו לבצע כל אחת מהמשימות. לכל תת תכנית יש לכתוב כותרת מלאה ותיעוד של הפרמטרים. הנח שהנתונים מיוצגים על פי הייצוג שכתבת בסעיף א. המשימות: i עדכון מאגר המידע, על פי קוד של משחק, כאשר השימוש במשחק נפסק בגלל תקלה. ii החזרת מספר המשחקים שנמכרו ביותר מ k עותקים. k מספר שלם וגדול מ 0. המשחקים מדורגים באמצעות כוכבים, לפי אחוז הפעמים שבהן השימוש במשחק ג. נפסק בגלל תקלה )מבין כל הפעמים שלקוחות שיחקו במשחק(: **** פחות מ 5% 5% או יותר, אך פחות מ 25% *** 25% או יותר, אך פחות מ 50% ** 50% או יותר * i כתוב בפסקל או ב C תת תכנית, שתקבל משתנה g מטיפוס game ותחזיר את מספר הכוכבים המציין את הדירוג של g. gamesdata מטיפוס gd תת תכנית, שתקבל משתנה C כתוב בפסקל או ב ii וגיל מינימלי, minage ותחזיר רשימה של כל הקודים של המשחקים אשר מתאימים לשחקנים החל מגיל זה וגם מדורגים כמשחקים של 4 כוכבים. הערה: אפשר להשתמש בפעולות הממשק רשימה בלי לממש אותן. אם אתה משתמש בפעולות נוספות, עליך לממש אותן. )שים לב: לפותרים ב Jave או ב #C, סעיפי השאלה בעמוד הבא.( /המשך בעמוד 7/

לפותרים ב Java או ב #C - 7 - מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205, א. כתוב ב Java או ב #C ייצוג למחלקה משחק Game ולמחלקה מאגר מידע על משחקים GamesData שיאפשרו לשמור את כל המידע הנדרש. לכל מחלקה יש לרשום כותרת ותכונות. ב. לפניך שתי משימות,. ii-i כתוב ב Java או ב #C כותרות לפעולות שיאפשרו לבצע כל אחת מהמשימות. לכל פעולה יש לכתוב כותרת מלאה ותיעוד של הפרמטרים, ולציין את המחלקה שבה היא מוגדרת. הנח שהנתונים מיוצגים על פי הייצוג שכתבת בסעיף א. המשימות: i עדכון מאגר המידע, על פי קוד של משחק, כאשר השימוש במשחק נפסק בגלל תקלה. ii החזרת מספר המשחקים שנמכרו ביותר מ k עותקים. k מספר שלם וגדול מ 0. המשחקים מדורגים באמצעות כוכבים, לפי אחוז הפעמים שבהן השימוש במשחק ג. נפסק בגלל תקלה )מבין כל הפעמים שלקוחות שיחקו במשחק(: **** פחות מ 5% 5% או יותר, אך פחות מ 25% *** 25% או יותר, אך פחות מ 50% ** 50% או יותר * i כתוב ב Java או ב #C פעולה פנימית במחלקה, Game שמחזירה את מספר הכוכבים המציין את דירוג המשחק. ii כתוב ב Java או ב #C פעולה פנימית במחלקה, GamesData שתקבל גיל מינימלי, minage ותחזיר רשימה של כל הקודים של המשחקים אשר מתאימים לשחקנים החל מגיל זה וגם מדורגים כמשחקים של 4 כוכבים. הערות: אפשר להשתמש בפעולות המחלקות > T List< T >, Node< בלי לממש אותן. אם אתה משתמש בפעולות נוספות, עליך לממש אותן. הנח כי בעבור כל תכונה מוגדרות פעולות get ו.set /המשך בעמוד 8/

- 8 - מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205, 4. איבר מחליף כיוון הוא מספר בסדרת מספרים שבו משתנה סדר המיון בין איברים סמוכים מעלייה לירידה או מירידה לעלייה. איבר מחליף כיוון שייך גם לרצף של מספרים הממוינים בסדר עולה וגם לרצף של מספרים הממוינים בסדר יורד. לדוגמה: בסדרה 2 5 7 4 2 8 המספרים 7 ו הם איברים מחליפי כיוון. א. כתוב באחת מארבע השפות פסקל, Java, #C, C תת תכנית/פעולה חיצונית )סטטית(, שתקבל מחסנית לא ריקה של מספרים שלמים, שאין בה מספרים זהים צמודים זה לזה. התת תכנית/פעולה תכניס למחסנית אחרי כל איבר מחליף כיוון איבר זהה לו. דוגמאות: 2 3 7 2 7 2 3 3 2 3 7 3 9 9 3 3 3 7 6 6 2 2 7 7 5 5 3 3 4 4 ÈappleÒÁÓ ÈappleÙÏ ÈappleÒÁÓ È Á ÈappleÒÁÓ ÈappleÙÏ ÈappleÒÁÓ È Á ÈappleÒÁÓ ÈappleÙÏ ÈappleÒÁÓ È Á ב. מהי סיבוכיות זמן הריצה של התת תכנית/הפעולה שכתבת? נמק את תשובתך. הערה: לפותרים בפסקל או ב : C אפשר להשתמש בפעולות הממשק מחסנית בלי לממש אותן. אם אתה משתמש בפעולות נוספות, עליך לממש אותן. לפותרים ב Java או ב #C : אפשר להשתמש בפעולות המחלקה > T Stack< בלי לממש אותן. אם אתה משתמש בפעולות נוספות, עליך לממש אותן. /המשך בעמוד 9/

- 9 - מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205, פרק שני )50 נקודות( בפרק זה שאלות בארבעה מסלולים שונים: מערכות מחשב ואסמבלר, עמ' 4-9 תורת המחשב, עמ' 8-5 מודלים חישוביים, עמ' 2-9 תכנות מונחה עצמים ב Java, עמ' 30-22; תכנות מונחה עצמים ב # C, עמ' 39-3 ענה רק על שאלות במסלול שלמדת. מערכות מחשב ואסמבלר אם למדת מסלול זה, ענה על שתיים מהשאלות 8-5 )לכל שאלה 25 נקודות(. בשאלה זו שני סעיפים שאין קשר ביניהם. ענה על שני הסעיפים א-ב. 5. באוגרים AX ו BX מאוחסנים שני מספרים שלמים עם סימן. א. יש לאחסן באוגר AX את המספר שהערך המוחלט שלו הוא הגדול ביותר מבין שניהם. לפניך שלושה קטעים,, iii-i באסמבלר. בעבור כל אחד מהקטעים, iii-i קבע אם הוא מבצע את הנדרש או אינו מבצע את הנדרש. נמק את קביעותיך. i. MOV CX, AX MOV DX, BX CMP CX, 0 JNS A NEG CX A: CMP DX, 0 JGE A2 NEG DX A2: CMP CX, DX JG SOF MOV AX, BX SOF: NOP /המשך בעמוד 0/ )שים לב: הקטעים iii-ii בעמוד הבא.(

מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205, - 0 - ii. PUSH AX PUSH BX CMP BX, 0 JNS A NEG BX A: CMP AX, 0 JNS A2 NEG AX A2: CMP AX, BX JG A3 POP AX A3: POP AX SOF: NOP iii. PUSH AX PUSH BX CMP AX, 0 JGE A NEG AX A: CMP BX, 0 JNS A2 NEG BX A2: CMP AX, BX JG SOF POP AX SOF: NOP )שים לב: סעיף ב של שאלה 5 בעמוד הבא.( /המשך בעמוד /

מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205, - - )אין קשר לסעיף א.( ב. לפניך קטע תכנית באסמבלר: שים לב: הנתונים הם הקסדצימליים. START: MOV AX, C83BH MOV BX, A89CH SHL AX, OR AL, 33H NOT BL ADD AX, BX עקוב בעזרת טבלת מעקב אחר ביצוע קטע התכנית. בטבלת המעקב פרט את התוכן של AX, BX, ZF, SF, CF בכל שלב. /המשך בעמוד 2/

- 2 - מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205, 6. בשאלה זו שני סעיפים שאין קשר ביניהם. ענה על שני הסעיפים א-ב. א. מערך סימטרי )פולינדרום( הוא מערך שבו האיבר הראשון שווה לאיבר האחרון, האיבר השני שווה לאיבר לפני האחרון, וכן הלאה. דוגמה למערך סימטרי בגודל 8: 7 5 2 8 8 2 5 7 במ קטע הנתונים הוגדר מערך : ARR ARR DB 20 DUP (?) לפניך קטע תכנית באסמבלר, הבודק אם המערך ARR הוא מערך סימטרי. אם כן קטע התכנית מכניס לאוגר, DH אחרת הוא מכניס 0 לאוגר. DH מ קטע התכנית הושמטו 5 שורות המסומנות במספרים v. - i העתק למחברתך את מספרי השורות המסומנות, וכתוב ליד כל אחד מהמספרים את השורה שחסרה, כדי שקטע התכנית יבצע את הנדרש. עליך לכתוב תוויות, פקודות ואופרנדים במקומות המתאימים. MOV AH, 0 i. ------ -------- MOV CX, 0 LEA BX, ARR A: MOV AL, [BX+SI] PUSH AX INC SI ii. ------ -------- JNZ A MOV CX, 0 iii. ------ ------ -------- MOV DL, [BX+SI] CMP AL, DL iv. ------ -------- MOV DH, 0 JMP A4 A3: INC SI v. ------ -------- MOV DH, A4: NOP )שים לב: סעיף ב של שאלה 6 בעמוד הבא.( /המשך בעמוד 3/

- 3 - מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205, ב. )אין קשר לסעיף א.( במקטע הנתונים הוגדרו מערך A ומשתנה : Y A DB 0 DUP (?) Y DB? מציין )אינדקס( המערך מקבל ערכים מ 0 עד ; 9 יש לאפס את האיבר במערך שהמציין )האינדקס( שלו הוא Y*3, כאשר Y הוא מספר שלם בין 0 ל 3 )כולל הקצוות(. לפניך ארבעה קטעים,, iv-i באסמבלר. בעבור כל אחד מהקטעים, iv - i קבע אם הוא מבצע את הנדרש או אינו מבצע את הנדרש. נמק את קביעותיך. i. MOV SI, Y ADD SI, SI ADD SI, SI MOV A[SI], 0 ii. XOR AL, AL LEA MOV BX, A [BX + 3 * Y], AL iii. MOV SI, 3 MOV AL, Y XOR AH, AH MUL SI MOV SI, AX MOV A[SI ], 0 iv. MOV SI, Y MOV AX, 3 MUL SI MOV A[SI], 0 /המשך בעמוד 4/

- 4 - מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205,.7 במקטע הנתונים הוגדרו ארבעה מערכים:. D, C, B, A A DB 8 DUP (?) B DB 8 DUP (?) C DB 8 DUP (?) D DB 0 DUP (?) כל אחד מהמערכים C, B, A ו D מייצג מספר בינרי שלם וגדול מ 0. כל ס פרה של המספר מאוחסנת באיבר של המערך. הספרה המשמעותית ביותר מאוחסנת בתחילת המערך. כתוב קטע תכנית באסמבלר, שיציב במערך D את הספרות של הסכום A+B+C לפי בסיס 2. לדוגמה: בעבור 3 המספרים 0, 0 0 0 ו 0 0 0 0 0 0 המאוחסנים במערכים B, A ו C שלפניך באופן הזה )משמאל לימין(: A 0 0 0 B 0 C 0 0 0 0 0 0 לאחר ביצוע קטע התכנית, יוצב במערך D המספר : 0 0 0 0 0 D 0 0 0 0 0 8. באוגר AX מאוחסן מספר בינרי. כתוב קטע תכנית באסמבלר, שיציב באוגר BL את מספר הפעמים שהרצף 0 מופיע במספר הבינרי שבאוגר.AX, 0000000 ABB C ABB C לדוגמה: אם באוגר AX מאוחסן המספר הבינרי: ABB C יוצב באוגר BL המספר 3. /המשך בעמוד 5/

תורת המחשב - 5 - מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205, אם למדת מסלול זה, ענה על שתיים מהשאלות 2-9 )לכל שאלה 25 נקודות(. x + y - z = 2x + 3y + αz = 3 x + αy + 3z = 2 9. לפניך מערכת משוואות לינאריות: α פרמטר. א. פתור את מערכת המשוואות באמצעות שיטת האלימינציה של גאוס. ב. בעבור אילו ערכים של α יש למערכת המשוואות פתרון יחיד? ג. בעבור איזה ערך של α אין למערכת המשוואות פתרון? /המשך בעמוד 6/

- 6 - מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205, 0. גרף G נקרא גרף פשוט, אם אין בו לולאות ואין בו קשתות מרובות )אין יותר מקשת אחת בין שני קדקודים(. בעבור גרף פשוט G שקבוצת הקדקודים שלו היא V וקבוצת הקשתות שלו היא, E הגרף המשלים G הוא הגרף שקבוצת הקדקודים שלו אף היא, V וקבוצת הקשתות שלו היא הקבוצה. E לכל זוג קדקודים u ו v בקבוצה V הקשת (u v), נמצאת בקבוצה. E = ( u, v) u, vdv, ( u, v) ze, E אם היא לא נמצאת בקבוצה. E כלומר א. בעבור כל אחד מן הגרפים הפשוטים iii-i שלפניך, צייר את הגרף המשלים שלו. i a c b a c e ii b d f a iii b e c d G הוא גרף שלם פשוט. תאר את הגרף המשלים. G ב. צייר גרף פשוט G ואת הגרף המשלים שלו G כך שבגרף G יש מעגל i ג. אוילר, וגם בגרף G יש מעגל אוילר. צייר גרף פשוט G 2 ואת הגרף המשלים שלו G 2 כך שבגרף G 2 יש מעגל אוילר, ii ואילו בגרף G 2 אין מעגל אוילר. צייר גרף פשוט G 3 ואת הגרף המשלים שלו G 3 כך שבגרף G 3 יש מעגל i ד. המילטון, וגם בגרף G 3 יש מעגל המילטון. צייר גרף פשוט G 4 ואת הגרף המשלים שלו G 4 כך שבגרף G 4 יש מעגל ii /המשך בעמוד 7/ המילטון, ואילו בגרף G 4 אין מעגל המילטון.

- 7 - מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205, S" AbA : G. א. i נתון הדקדוק A" AB ε B" aa? G מהי השפה הנוצרת על ידי הדקדוק B" a את הכלל: G נוסיף לדקדוק ii. G ' ונסמן את הדקדוק שהתקבל? G ' מהי השפה הנוצרת על ידי הדקדוק S" AbA : G 2 נתון הדקדוק i ב. A" AB a B" a? G 2 מהי השפה הנוצרת על ידי הדקדוק B"ε את הכלל: G 2 נוסיף לדקדוק ii. G ' 2 ונסמן את הדקדוק שהתקבל? G ' 2 מהי השפה הנוצרת על ידי הדקדוק S" AbA : G 3 ג. i נתון הדקדוק A" ABB ε B" a? G 3 מהי השפה הנוצרת על ידי הדקדוק B"ε את הכלל: G 3 נוסיף לדקדוק ii. G ' 3 ונסמן את הדקדוק שהתקבל? G ' 3 מהי השפה הנוצרת על ידי הדקדוק /המשך בעמוד 8/

- 8 - מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205, 2. א. כלבים, חתולים ועכברים צועדים בתהלוכה בזה אחר זה. תהלוכה חוקית היא תהלוכה המתנהלת לפי הכללים האלה: חתול אף פעם לא יעמוד לבדו בין שני כלבים. בראש התהלוכה תמיד יהיה כלב. עכבר לא יכול להיות אחרון בתהלוכה. כתוב אוטומט סופי דטרמיניסטי שיקבל את כל התהלוכות החוקיות. ב. האריה מלך החיות קבע כללים אחרים לתהלוכה של כלבים, חתולים ועכברים הצועדים בזה אחר זה. לפניך אוטומט סופי דטרמיניסטי המתאר את הכללים שקבע האריה. נסח את הכללים שהאוטומט מתאר. ÏÂ Á ÏÁ ÏÎ q 0 ÏÂ Á ÏÎ ÎÚ q ÎÚ ÎÚ ÏÂ Á ÏÎ ÏÂ Á ÏÎ q 2 ÎÚ /המשך בעמוד 9/

מודלים חישוביים - 9 - מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205, אם למדת מסלול זה, ענה על שתיים מהשאלות 6-3 )לכל שאלה 25 נקודות(..3 נתונה מחרוזת אינסופית:... 323232323... א. בנה אוטומט סופי דטרמיניסטי מעל הא"ב 3, 2,, המקבל את כל המילים באורך אי זוגי שכל אחת מהן היא תת מחרוזת של המחרוזת הנתונה. לדוגמה: המילה 2323 תתקבל. המילים 232 ו 232 לא יתקבלו. ב. בנה אוטומט סופי דטרמיניסטי מעל הא"ב 3, 2,, המקבל את כל המילים שהן באורך אי זוגי וסדר הספרות בהן הוא כמו הסדר במחרוזת הנתונה, אך הספרה יכולה לחזור כמה פעמים ברצף. לדוגמה: יתקבלו המילים האלה: 323 323 323 /המשך בעמוד 20/

- 20 - מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205, 4. נגדיר: בעבור אות k ומילה w הסימון (w # k ( הוא מספר המופעים של האות k במילה w. L 5 -L מעל הא"ב 0,. לפניך השפות L w w > 5 L2 = w # ( w) < 5 L3 = w # 0( w) = 5, # ( w) = 5 L4 = w # 0( w) = # ( w) L5 = w w = xxy, 0 < x < 5, 0, מילים לא ריקות מעל הא"ב y, x L. 3 נמק את תשובתך. L 4 ולא שייכת לשפה א. i רשום מילה השייכת לשפה L. 2 נמק את תשובתך. L ולא שייכת לשפה ii רשום מילה השייכת לשפה L. 2 נמק את תשובתך. L 5 ולא שייכת לשפה iii רשום מילה השייכת לשפה ב. הגדר כל אחת מהשפות ii-i שלפניך. L 2 i L 3 ii לכל אחת מהטענות iv-i שלפניך, נמק מדוע היא אינה נכונה. ג. L+ L2 = Q i L3 L4 ii L4 $ L4! L4 iii L5+ L3 = Q iv /המשך בעמוד 2/

- 2 - מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205, L cn an = + 2 n > 0 L = ww2 w3... wk b k k > 0, wi! L : a, c מעל הא"ב L 5. נגדיר את השפה לפניך השפה L מעל הא"ב c a, b, : לדוגמה: המילה caaaccaaaacaaabbb היא מילה בשפה, L כאשר = 3 k, וכן: w = caaa w2 = ccaaaa w3 = caaa בנה אוטומט מחסנית שיקבל את השפה. L 6. א. כלבים, חתולים ועכברים צועדים בתהלוכה בזה אחר זה. תהלוכה חוקית היא תהלוכה המתנהלת לפי הכללים האלה: חתול אף פעם לא יעמוד לבדו בין שני כלבים. בראש התהלוכה תמיד יהיה כלב. עכבר לא יכול להיות אחרון בתהלוכה. כתוב אוטומט סופי דטרמיניסטי שיקבל את כל התהלוכות החוקיות. ב. האריה מלך החיות קבע כללים אחרים לתהלוכה של כלבים, חתולים ועכברים הצועדים בזה אחר זה. לפניך אוטומט סופי דטרמיניסטי המתאר את הכללים שקבע האריה. נסח את הכללים שהאוטומט מתאר. ÏÂ Á ÏÁ ÏÎ q 0 ÏÂ Á ÏÎ ÎÚ q ÎÚ ÎÚ ÏÂ Á ÏÎ ÏÂ Á ÏÎ q 2 /המשך בעמוד 22/ ÎÚ

- 22 - מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205, תכנות מונחה עצמים אם למדת מסלול זה ואתה כותב ב,Java ענה על שתיים מהשאלות 20-7. )לכל שאלה 25 נקודות( 7. לפניך חלק מפרויקט העוסק בכל י תחבורה וכולל את המחלקות האלה: מייצגת כל י תחבורה מייצגת רכבת שהיא כלי תחבורה מייצגת סירה שהיא כלי תחבורה מייצגת מטוס שהוא כלי תחבורה מייצגת חברה שיש לה כל י תחבורה מסוגים שונים המחלקה Vehicle המחלקה Train המחלקה Boat המחלקה Airplane המחלקה TransportationCompany public class Vehicle type; private String מיקום ( יבשה / מים / אוויר( way; private String סוג הדרך )כביש / מסילה / נהר / )... maxspeed; private int מהירות מקסימלית public Vehicle(String type, String way, int maxspeed) this.type = type; this.way = way; this.maxspeed = maxspeed; public class Train extends Vehicle numofcarriages; private int מספר הקרונות public Train(int maxspeed, int numofcarriages) super("land", "tracks", maxspeed); this.numofcarriages = numofcarriages; מגדילה ב n את מספר הקרונות ברכבת (n public void incnumofcarriages(int this.numofcarriages = this.numofcarriages + n; )שים לב: המשך השאלה בעמודים הבאים.( /המשך בעמוד 23/

- 23 - מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205, public class Boat extends Vehicle public Boat(String way, int maxspeed) super("water", way, maxspeed); public class Airplane extends Vehicle maxheight; private int גובה טיסה מקסימלי public Airplane(int maxspeed, int maxheight) super("sky", "air", maxspeed); this.maxheight = maxheight; public class TransportationCompany private Vehicle[] vehicles = new Vehicle[50]; private int counter = 0; public TransportationCompany() מערך כל י התחבורה בחברה מספר כל י התחבורה שיש בפועל מוסיפה כל י תחבורה למערך כל י התחבורה של (v public void addvehicle (Vehicle החברה. הנח שיש מקום להוסיף כל י תחבורה. this.vehicles[counter] = v; this.counter++; )שים לב: סעיפי השאלה בעמוד הבא.( /המשך בעמוד 24/

- 24 - מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205, א. ממש ב Java מחלקה ראשית Program ובה פעולה ראשית, שתבצע את המשימות האלה: TransportationCompany בנייה של עצם מטיפוס חברה של כל י תחבורה i הנקרא.company הוספה של סירה אחת ורכבת אחת לחברה.company ii בחר לתכונות ערכים כרצונך. ב. במחלקה TransportationCompany הוגדרה הפעולה: public void display() for (int i=0; i<this.counter; i++) System.out.println((i+) + ":" + this.vehicles[i]); ממש ב Java פעולות שיאפשרו ביצוע תקין של הפעולה display(), כך שבעבור כל כל י תחבורה יודפסו כל התכונות שלו. הגדר את הפעולות באופן המתאים ביותר לעקרונות של תכנות מונחה עצמים )הכמסה encapsulation, הורשה inheritance, פולימורפיזם.)polymorphism בעבור כל פעולה שאתה מממש, רש ום לאיזו מחלקה היא שייכת. אין לשנות את הפעולה.display() ג. ממש ב Java פעולה, שתקבל מספר שלם n ותוסיף n קרונות לכל הרכבות ששייכות לחברה שיש לה כל י תחבורה מסוגים שונים. תעד את הפעולה, ורשום באיזו מחלקה יש להגדיר אותה. אין לשנות את הפעולות הקיימות בפרויקט. /המשך בעמוד 25/

- 25 - מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205, 8. בספרייה עירונית יש מאגר מידע על הספרים שבה. בעבור כל ספר נשמר הדירוג שהתקבל מקוראי הספר על מידת ההנאה שלהם ממנו. כאשר קורא מחזיר לספרייה ספר הוא מקליד את הדירוג שלו, מספר שלם בין 0 ל 4, כאשר 4 מציין את מידת ההנאה הרבה ביותר. המידע על דירוג הספרים נשמר במאגר כך שאפשר לדעת כמה קוראים דירגו כל ספר בכל אחת מחמש הדרגות האפשריות. במאגר המידע יש מחלקה המייצגת ספר (Book) ומחלקה המייצגת ספרייה.(Library) לפניך דיאגרמות UML המתארות את המחלקות Book ו : Library private int code private String name private String genre private int numofcopies private int[] rating... public void incnumofcopies() public double score() קוד הספר שם הספר סוג הספר )רומן, מתח, ילדים...( מספר העותקים של הספר שנמצאים עכשיו בספרייה )לא מושאלים(. מערך מונים של דרגות ההנאה של הקוראים מהספר. לכל תכונה מוגדרות פעולות set ו get פעולה המגדילה ב את מספר העותקים של ספר שנמצאים עכשיו בספרייה )לא מושאלים(. פעולה המחזירה ציון של ספר, המחושב על פי כל דרגות ההנאה שהספר קיבל. Book מערך הספרים בספרייה. כל ספר מופיע במערך פעם אחת. private Book[] books Library הנח שמספר הספרים בספרייה הוא כאורך המערך. כאשר קורא מחזיר לספרייה ספר, יש לבצע את המשימות האלה: קליטת הקוד של הספר לצורך זיהויו. עדכון של מספר העותקים של הספר שנמצאים עכשיו בספרייה )לא מושאלים(. קליטת הדירוג שנתן הקורא לספר, ועדכון מערך המונים rating של הספר בהתאם. הדפסת הודעה שתציין אם בעקבות הדירוג של קורא זה, הציון של הספר עלה, ירד או לא השתנה. ממש ב, Java במחלקות הנתונות, את הפעולות הנדרשות לטיפול בהחזרה של ספר לספרייה. עליך להגדיר את הפעולות באופן המתאים ביותר למבנה המחלקות בפרויקט. בעבור כל פעולה רשום את המחלקה שבה תוגדר, מה היא מקבלת, ומה היא מחזירה. הנח שלכל הפעולות הרשומות בדיאגרמות ה UML יש מימוש במחלקות. הערה: אין צורך לבדוק את תקינות הקלט. /המשך בעמוד 26/

- 26 - מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205, 9. ברשת החנויות "גאדג'טון" יש 50 חנויות. הרשת מוכרת את המוצרים האלה: נגני, MP3 נגני, MP4 אוזניות אלחוטיות. הרשת זקוקה לתוכנה שבאמצעותה יהיה אפשר לנהל את המלאי של כל אחת מהחנויות. בעבור כל אחד מהמוצרים התוכנה צריכה לטפל בנתונים האלה: נגני : MP3 יצרן, דגם, מחיר, כמות במלאי, האם יש רדיו )כן / לא(, האם יש רמקול פנימי )כן / לא( נגני : MP4 יצרן, דגם, מחיר, כמות במלאי, האם יש רדיו )כן / לא(, האם יש רמקול פנימי )כן / לא(, אורך מסך אוזניות אלחוטיות: יצרן, דגם, מחיר, כמות במלאי, טווח קליטה כל אחד מהמוצרים האלה נמצא במלאי של כל אחת מחנויות הרשת, ומכל מוצר יש דגמים שונים בכמויות שונות. הדרישות מהתוכנה נחלקות לשתי רמות: רמת החנות, רמת הרשת. הדרישות מהתוכנה ברמת החנות: החזרת ש ווי המלאי שבחנות החזרת רשימת הדגמים של מוצר, שהכמות שלהם במלאי החנות קטנה ממספר נדרש, limit הדרישות מהתוכנה ברמת הרשת: החזרת ש ווי המלאי שבכל הרשת החזרת רשימת הדגמים של מוצר, שהכמות שלהם במלאי בכל הרשת קטנה ממספר נדרש, limit )שים לב: המשך השאלה בעמוד הבא.( /המשך בעמוד 27/

- 27 - מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205, עליך לתכנן את המחלקות הנדרשות בעבור כתיבת התוכנה. התכנון של המחלקות צריך להיות באופן המתאים ביותר לעקרונות של תכנות מונחה עצמים )הכמסה encapsulation, הורשה inheritance, פולימורפיזם.)polymorphism א. צייר את היררכיית המחלקות הנדרשות. בציורך השתמש בסימנים האלה: Â È ÏÎ ב. בעבור כל מחלקה שכללת בציור, הגדר את התכונות והפעולות שלה. יש לכלול רק את הפעולות הנחוצות כדי לענות על הדרישות מהתוכנה שתוארו בתחילת השאלה. בעבור כל תכונה, רשום את ההגדרה שלה ב, Java ואת התיעוד שלה. בעבור כל פעולה, רשום את הכותרת שלה ב, Java ורשום תיעוד הכולל מה היא מקבלת ומה היא מחזירה. אין צורך לממש את הפעולה. אין צורך לרשום פעולות בונות, פעולות קובעות )פעולות )set ופעולות מאחזרות )פעולות )get של התכונות שאתה מגדיר. /המשך בעמוד 28/

- 28 - מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205,.20 לפניך פרויקט, ובו המחלקות, Derived3, Derived2, Derived, Base ו Program. public class Base protected int num; public Base (int n) this.num = n; protected void dosomework() System.out.println("num = " + this.num); public void run() if (this.num%2 == 0) dosomework(); public class Derived extends Base private int num; public Derived(int n, int n) super (n); this.num = n; protected void dosomework() multiplication(); public void multiplication() super.dosomework(); System.out.println("num = " + this.num); System.out.println("num * num = " + this.num * this.num); /המשך בעמוד 29/ )שים לב: המשך השאלה בעמודים הבאים.(

- 29 - מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205, public class Derived2 extends Base private int num2; public Derived2(int n, int n2) super (n); this.num2 = n2; protected void dosomework() division(); public void division () super.dosomework(); System.out.println("num2 = " + this.num2); System.out.println("num / num2 = " + this.num / this.num2); public class Derived3 extends Base private int num3; public Derived3(int n, int n3) super (n); this.num3 = n3; protected void dosomework() multiplication(); division(); public void multiplication() super.dosomework(); System.out.println("num3 = " + this.num3); System.out.println("num * num3 = " + this.num * this.num3); )שים לב: המשך השאלה בעמוד הבא.( /המשך בעמוד 30/

- 30 - מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205, public void division() super.dosomework(); System.out.println("num3 = " + this.num3); System.out.println("num / num3 = " + this.num / this.num3); public class Program public static void main(string[] args) Base[] arr = new Base[5]; arr[0] = new Derived(2, 22); arr[] = new Derived2(33, 44); arr[2] = new Derived3(54, 34); arr[3] = new Derived(5, 72); arr[4] = new Derived2(58, 99); for (int i = 0; i < arr.length; i++) arr[i].run(); if (arr[2] instanceof Derived3) arr[2].run(); if (arr[3] instanceof Derived2) arr[3].run(); כתוב מעקב אחר הפעולה main במחלקה,Program וכתוב את הפלט. במעקב יש לכלול את ערכי המשתנים, ובעבור כל עצם את ערכי התכונות שלו. /המשך בעמוד 3/

- 3 - מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205, תכנות מונחה עצמים אם למדת מסלול זה ואתה כותב ב #C, ענה על שתיים מהשאלות 24-2. )לכל שאלה 25 נקודות( 2. לפניך חלק מפרויקט העוסק בכל י תחבורה וכולל את המחלקות האלה: מייצגת כל י תחבורה מייצגת רכבת שהיא כלי תחבורה מייצגת סירה שהיא כלי תחבורה מייצגת מטוס שהוא כלי תחבורה מייצגת חברה שיש לה כל י תחבורה מסוגים שונים המחלקה Vehicle המחלקה Train המחלקה Boat המחלקה Airplane המחלקה TransportationCompany public class Vehicle type; private string מיקום ( יבשה / מים / אוויר( way; private string סוג הדרך )כביש / מסילה / נהר / )... maxspeed; private int מהירות מקסימלית public Vehicle(string type, string way, int maxspeed) this.type = type; this.way = way; this.maxspeed = maxspeed; public class Train : Vehicle numofcarriages; private int מספר הקרונות public Train(int maxspeed, int numofcarriages) : base("land", "tracks",maxspeed) this.numofcarriages = numofcarriages; מגדילה ב n את מספר הקרונות ברכבת (n public void IncNumOfCarriages(int this.numofcarriages = this.numofcarriages + n; )שים לב: המשך השאלה בעמודים הבאים.( /המשך בעמוד 32/

- 32 - מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205, public class Boat : Vehicle public Boat(string way, int maxspeed) : base("water", way, maxspeed) public class Airplane : Vehicle maxheight; private int גובה טיסה מקסימלי public Airplane(int maxspeed, int maxheight) : base("sky", "air", maxspeed) this.maxheight = maxheight; public class TransportationCompany private Vehicle[] vehicles = new Vehicle[50]; private int counter = 0; public TransportationCompany() מערך כל י התחבורה בחברה מספר כל י התחבורה שיש בפועל מוסיפה כל י תחבורה למערך כל י התחבורה של (v public void AddVehicle (Vehicle החברה. הנח שיש מקום להוסיף כלי תחבורה. this.vehicles[counter] = v; this.counter++; )שים לב: סעיפי השאלה בעמוד הבא.( /המשך בעמוד 33/

- 33 - מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205, א. ממש ב #C מחלקה ראשית Program ובה פעולה ראשית, שתבצע את המשימות האלה: TransportationCompany בנייה של עצם מטיפוס חברה של כל י תחבורה i הנקרא. company הוספה של סירה אחת ורכבת אחת לחברה.company ii בחר לתכונות ערכים כרצונך. ב. במחלקה TransportationCompany הוגדרה הפעולה: public void Display() for (int i=0; i<this.counter; i++) Console.WriteLine((i+) + ":" + this.vehicles[i]); ממש ב # C פעולות שיאפשרו ביצוע תקין של הפעולה Display(), כך שבעבור כל כל י תחבורה יודפסו כל התכונות שלו. הגדר את הפעולות באופן המתאים ביותר לעקרונות של תכנות מונחה עצמים )הכמסה encapsulation, הורשה inheritance, פולימורפיזם.)polymorphism בעבור כל פעולה שאתה מממש, רש ום לאיזו מחלקה היא שייכת. אין לשנות את הפעולה.Display() ג. ממש ב # C פעולה, שתקבל מספר שלם n ותוסיף n קרונות לכל הרכבות ששייכות לחברה שיש לה כל י תחבורה מסוגים שונים. תעד את הפעולה, ורשום באיזו מחלקה יש להגדיר אותה. אין לשנות את הפעולות הקיימות בפרויקט. /המשך בעמוד 34/

- 34 - מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205, 22. בספרייה עירונית יש מאגר מידע על הספרים שבה. בעבור כל ספר נשמר הדירוג שהתקבל מקוראי הספר על מידת ההנאה שלהם ממנו. כאשר קורא מחזיר לספרייה ספר הוא מקליד את הדירוג שלו, מספר שלם בין 0 ל 4, כאשר 4 מציין את מידת ההנאה הרבה ביותר. המידע על דירוג הספרים נשמר במאגר כך שאפשר לדעת כמה קוראים דירגו כל ספר בכל אחת מחמש הדרגות האפשריות. במאגר המידע יש מחלקה המייצגת ספר (Book) ומחלקה המייצגת ספרייה.(Library) לפניך דיאגרמות UML המתארות את המחלקות Book ו : Library private int code private string name private string genre private int numofcopies private int[] rating... public void IncNumOfCopies() public double Score() קוד הספר שם הספר סוג הספר )רומן, מתח, ילדים...( מספר העותקים של הספר שנמצאים עכשיו בספרייה )לא מושאלים(. מערך מונים של דרגות ההנאה של הקוראים מהספר. לכל תכונה מוגדרות פעולות Set ו Get פעולה המגדילה ב את מספר העותקים של ספר שנמצאים עכשיו בספרייה )לא מושאלים(. פעולה המחזירה ציון של ספר, המחושב על פי כל דרגות ההנאה שהספר קיבל. Book מערך הספרים בספרייה. כל ספר מופיע במערך פעם אחת. private Book[] books Library הנח שמספר הספרים בספרייה הוא כאורך המערך. כאשר קורא מחזיר לספרייה ספר, יש לבצע את המשימות האלה: קליטת הקוד של הספר לצורך זיהויו. עדכון של מספר העותקים של הספר שנמצאים עכשיו בספרייה )לא מושאלים(. קליטת הדירוג שנתן הקורא לספר, ועדכון מערך המונים rating של הספר בהתאם. הדפסת הודעה שתציין אם בעקבות הדירוג של קורא זה, הציון של הספר עלה, ירד או לא השתנה. ממש ב # C, במחלקות הנתונות, את הפעולות הנדרשות לטיפול בהחזרה של ספר לספרייה. עליך להגדיר את הפעולות באופן המתאים ביותר למבנה המחלקות בפרויקט. בעבור כל פעולה רשום את המחלקה שבה תוגדר, מה היא מקבלת, ומה היא מחזירה. הנח שלכל הפעולות הרשומות בדיאגרמות ה UML יש מימוש במחלקות. הערה: אין צורך לבדוק את תקינות הקלט. /המשך בעמוד 35/

- 35 - מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205, 23. ברשת החנויות "גאדג'טון" יש 50 חנויות. הרשת מוכרת את המוצרים האלה: נגני, MP3 נגני, MP4 אוזניות אלחוטיות. הרשת זקוקה לתוכנה שבאמצעותה יהיה אפשר לנהל את המלאי של כל אחת מהחנויות. בעבור כל אחד מהמוצרים התוכנה צריכה לטפל בנתונים האלה: נגני : MP3 יצרן, דגם, מחיר, כמות במלאי, האם יש רדיו )כן / לא(, האם יש רמקול פנימי )כן / לא( נגני : MP4 יצרן, דגם, מחיר, כמות במלאי, האם יש רדיו )כן / לא(, האם יש רמקול פנימי )כן / לא(, אורך מסך אוזניות אלחוטיות: יצרן, דגם, מחיר, כמות במלאי, טווח קליטה כל אחד מהמוצרים האלה נמצא במלאי של כל אחת מחנויות הרשת, ומכל מוצר יש דגמים שונים בכמויות שונות. הדרישות מהתוכנה נחלקות לשתי רמות: רמת החנות, רמת הרשת. הדרישות מהתוכנה ברמת החנות: החזרת ש ווי המלאי שבחנות החזרת רשימת הדגמים של מוצר, שהכמות שלהם במלאי החנות קטנה ממספר נדרש, limit הדרישות מהתוכנה ברמת הרשת: החזרת ש ווי המלאי שבכל הרשת החזרת רשימת הדגמים של מוצר, שהכמות שלהם במלאי בכל הרשת קטנה ממספר נדרש, limit )שים לב: המשך השאלה בעמוד הבא.( /המשך בעמוד 36/

- 36 - מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205, עליך לתכנן את המחלקות הנדרשות בעבור כתיבת התוכנה. התכנון של המחלקות צריך להיות באופן המתאים ביותר לעקרונות של תכנות מונחה עצמים )הכמסה encapsulation, הורשה inheritance, פולימורפיזם.)polymorphism א. צייר את היררכיית המחלקות הנדרשות. בציורך השתמש בסימנים האלה: Â È ÏÎ ב. בעבור כל מחלקה שכללת בציור, הגדר את התכונות והפעולות שלה. יש לכלול רק את הפעולות הנחוצות כדי לענות על הדרישות מהתוכנה שתוארו בתחילת השאלה. בעבור כל תכונה, רשום את ההגדרה שלה ב # C, ואת התיעוד שלה. בעבור כל פעולה, רשום את הכותרת שלה ב # C, ורשום תיעוד הכולל מה היא מקבלת ומה היא מחזירה. אין צורך לממש את הפעולה. אין צורך לרשום פעולות בונות, פעולות קובעות )פעולות )Set ופעולות מאחזרות )פעולות )Get של התכונות שאתה מגדיר. /המשך בעמוד 37/

- 37 - מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205,.24 לפניך פרויקט, ובו המחלקות, Derived3, Derived2, Derived, Base ו Program. public class Base protected int num; public Base (int n) this.num = n; protected virtual void DoSomeWork() Console.WriteLine("num = " + this.num); public void Run() if (this.num%2 == 0) DoSomeWork(); public class Derived : Base private int num; public Derived(int n, int n) : base(n) this.num = n; protected override void DoSomeWork() Multiplication(); public void Multiplication() Base.DoSomeWork(); Console.WriteLine("num = " + this.num); Console.WriteLine("num * num = " + this.num * this.num); )שים לב: המשך השאלה בעמודים הבאים.( /המשך בעמוד 38/

- 38 - מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205, public class Derived2 : Base private int num2; public Derived2(int n, int n2) : base(n) this.num2 = n2; protected override void DoSomeWork() Division(); public void Division () Base.DoSomeWork(); Console.WriteLine("num2 = " + this.num2); Console.WriteLine("num / num2 = " + this.num / this.num2); public class Derived3 : Base private int num3; public Derived3(int n, int n3) : base(n) this.num3 = n3; protected override void DoSomeWork() Multiplication(); Division(); public void Multiplication() Base.DoSomeWork(); Console.WriteLine("num3 = " + this.num3); Console.WriteLine("num * num3 = " + this.num * this.num3); )שים לב: המשך השאלה בעמוד הבא.( /המשך בעמוד 39/

- 39 - מדעי המחשב ב', קיץ תשס"ח, מס' 603 899205, public void Division() Base.DoSomeWork(); Console.WriteLine("num3 = " + this.num3); Console.WriteLine("num / num3 = " + this.num / this.num3); public class Program public static void Main(string[] args) Base[] arr = new Base[5]; arr[0] = new Derived(2, 22); arr[] = new Derived2(33, 44); arr[2] = new Derived3(54, 34); arr[3] = new Derived(5, 72); arr[4] = new Derived2(58, 99); for (int i = 0; i < arr.length; i++) arr[i].run(); if (arr[2] is Derived3) arr[2].run(); if (arr[3] is Derived2) arr[3].run(); כתוב מעקב אחר הפעולה Main במחלקה,Program וכתוב את הפלט. במעקב יש לכלול את ערכי המשתנים, ובעבור כל עצם את ערכי התכונות שלו. בהצלחה! זכות היוצרים שמורה למדינת ישראל אין להעתיק או לפרסם אלא ברשות משרד החינוך